/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.biblioteca.bl;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.its.dsw2.biblioteca.dao.AutorDaoLocal;
import mx.its.dsw2.biblioteca.enumeracion.EstadoTransaccion;
import mx.its.dsw2.biblioteca.modelo.Autor;

/**
 *
 * @author Maq.8
 */
@Stateless
public class AutorBl implements AutorBlLocal {

    @EJB
    private AutorDaoLocal autorDao;//Llamada a un Enterprise Java Bean con el metodo
    //inyeccion de objetos, cuando se necesite el contenedor de EJB's crea el onjeto
    //para inicializar la vriable
    
    //ESTOY COMO ZOMBIE

    @Override
    public EstadoTransaccion register(Autor author) {
        if (autorDao.findDuplicity(author)) {
            return EstadoTransaccion.INCOMPLETO;
        } else {
            autorDao.create(author);
            return EstadoTransaccion.COMPLETO;
        }
    }

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    @Override
    public EstadoTransaccion modify(Autor author) {
//        if(autorDao.findDuplicity(author)){
//        autorDao.edit(author);
//        return EstadoTransaccion.COMPLETO;
//        }else{
//        return EstadoTransaccion.INCOMPLETO;
//        } SI SIRVE PERO ES LENTOOOOO
//        
//    }

        if (author.getId() == null || autorDao.find(author.getId()) == null) {

            return EstadoTransaccion.INCOMPLETO;
        } else {
            autorDao.edit(author);
            return EstadoTransaccion.COMPLETO;
        }

    }

    @Override
    public EstadoTransaccion delete(Autor author) {
      if (author.getId() == null || autorDao.find(author.getId()) == null) {

            return EstadoTransaccion.INCOMPLETO;
        } else {
            autorDao.remove(author);
            return EstadoTransaccion.COMPLETO;
        }
    }

    @Override
    public List<Autor> getAll() {
        return autorDao.findAll();
    }

    @Override
    public Autor findById(int author) {
        return autorDao.find(author);
    }
    
    
    
    
    
    
}
